function LE = LEs_ptm(x0, a, b, c, N, transient)
% LEs_ptm 计算一维 PTM 的最大 Lyapunov 指数
%
%   对一维映射 f(x) = a*(x + b*sin(3*x) + c)^2，
%   其导数为 f'(x) = 2*a*( x + b*sin(3*x) + c )*( 1 + 3*b*cos(3*x) )。
%
%   一维最大 Lyapunov 指数可用下式近似：
%       LE = (1/N) * sum_{k=1 to N} ln|f'(x_k)|,
%   其中 x_k 是在舍弃前 transient 次迭代后得到的第 k 步状态。
%
% 输入：
%   x0        - 初始状态
%   a, b, c   - PTM 参数
%   N         - 用于计算 LE 的有效迭代步数（舍弃暂态后）
%   transient - 舍弃的暂态步数
%
% 输出：
%   LE        - 计算得到的一维最大 Lyapunov 指数

    % ============ 1) 舍弃暂态 ============    
    x = x0;
    for i = 1:transient
        x = a*( x + b*sin(3*x) + c )^2;
    end

    % ============ 2) 累加 log|f'(x_k)| ============
    sum_log = 0;
    for i = 1:N
        % 计算导数 f'(x)
        df = 2*a*( x + b*sin(3*x) + c )*( 1 + 3*b*cos(3*x) );
        
        % 累加对数
        sum_log = sum_log + log(abs(df));
        
        % 映射迭代到下一步
        x = a*( x + b*sin(3*x) + c )^2;
    end

    % ============ 3) 平均后得到 LE ============
    LE = sum_log / N;
end
